<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Time Based 2</title>
    <link rel="stylesheet" href="../include/style.css">
  </head>
  <body>
    <header>
      Example from <a href="http://amzn.com/1430236655?tag=html5anim-20"><em>Foundation HTML5 Animation with JavaScript</em></a>
    </header>
    <canvas id="canvas" width="400" height="400"></canvas>

    <script src="../include/utils.js"></script>
    <script src="./classes/ball.js"></script>
    <script>
    window.onload = function () {
      var canvas = document.getElementById('canvas'),
          context = canvas.getContext('2d'),
          ball = new Ball(),
          start_time = new Date().getTime(),
          time = getTimer(),
          fps = 15,
          vx = 300,
          vy = -300,
          bounce = -0.7;

      ball.x = canvas.width * Math.random();
      ball.y = canvas.height / 2;

      function getTimer () {
        return (new Date().getTime() - start_time); //milliseconds
      }
      
      function drawFrame() {
        context.clearRect(0, 0, canvas.width, canvas.height);
        
        var elapsed = getTimer() - time,
            left = 0,
            right = canvas.width,
            top = 0,
            bottom = canvas.height;
        
        time = getTimer();
        
        ball.x += vx * elapsed / 1000;
        ball.y += vy * elapsed / 1000;
        
        if (ball.x + ball.radius > right) {
          ball.x = right - ball.radius;
          vx *= bounce;
        } else if (ball.x - ball.radius < left) {
          ball.x = left + ball.radius;
          vx *= bounce;
        }
        if (ball.y + ball.radius > bottom) {
          ball.y = bottom - ball.radius;
          vy *= bounce;
        } else if (ball.y - ball.radius < top) {
          ball.y = top + ball.radius;
          vy *= bounce;
        }
        ball.draw(context);
      }

      window.setInterval(drawFrame, 1000/fps);
    };
    </script>
  </body>
</html>
